home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / ab20 / utilitys / editors / emacs185.lha / emacs / lisp / bytecomp.elc < prev    next >
Encoding:
Text File  |  1992-02-21  |  28.5 KB  |  677 lines

  1.  
  2. (provide (quote byte-compile))
  3.  
  4. (defvar byte-compile-constnum -1 "\
  5. Transfer vector index of last constant allocated.")
  6.  
  7. (defvar byte-compile-constants nil "\
  8. Alist describing contents to put in transfer vector.
  9. Each element is (CONTENTS . INDEX)")
  10.  
  11. (defvar byte-compile-macro-environment nil "\
  12. Alist of (MACRONAME . DEFINITION) macros defined in the file
  13. which is being compiled.")
  14.  
  15. (defvar byte-compile-pc 0 "\
  16. Index in byte string to store next opcode at.")
  17.  
  18. (defvar byte-compile-output nil "\
  19. Alist describing contents to put in byte code string.
  20. Each element is (INDEX . VALUE)")
  21.  
  22. (defvar byte-compile-depth 0 "\
  23. Current depth of execution stack.")
  24.  
  25. (defvar byte-compile-maxdepth 0 "\
  26. Maximum depth of execution stack.")
  27.  
  28. (defconst byte-varref 8 "\
  29. Byte code opcode for variable reference.")
  30.  
  31. (defconst byte-varset 16 "\
  32. Byte code opcode for setting a variable.")
  33.  
  34. (defconst byte-varbind 24 "\
  35. Byte code opcode for binding a variable.")
  36.  
  37. (defconst byte-call 32 "\
  38. Byte code opcode for calling a function.")
  39.  
  40. (defconst byte-unbind 40 "\
  41. Byte code opcode for unbinding special bindings.")
  42.  
  43. (defconst byte-constant 192 "\
  44. Byte code opcode for reference to a constant.")
  45.  
  46. (defconst byte-constant-limit 64 "\
  47. Maximum index usable in  byte-constant  opcode.")
  48.  
  49. (defconst byte-constant2 129 "\
  50. Byte code opcode for reference to a constant with vector index >= 0100.")
  51.  
  52. (defconst byte-goto 130 "\
  53. Byte code opcode for unconditional jump")
  54.  
  55. (defconst byte-goto-if-nil 131 "\
  56. Byte code opcode for pop value and jump if it's nil.")
  57.  
  58. (defconst byte-goto-if-not-nil 132 "\
  59. Byte code opcode for pop value and jump if it's not nil.")
  60.  
  61. (defconst byte-goto-if-nil-else-pop 133 "\
  62. Byte code opcode for examine top-of-stack, jump and don't pop it if it's nil,
  63. otherwise pop it.")
  64.  
  65. (defconst byte-goto-if-not-nil-else-pop 134 "\
  66. Byte code opcode for examine top-of-stack, jump and don't pop it if it's not nil,
  67. otherwise pop it.")
  68.  
  69. (defconst byte-return 135 "\
  70. Byte code opcode for pop value and return it from byte code interpreter.")
  71.  
  72. (defconst byte-discard 136 "\
  73. Byte code opcode to discard one value from stack.")
  74.  
  75. (defconst byte-dup 137 "\
  76. Byte code opcode to duplicate the top of the stack.")
  77.  
  78. (defconst byte-save-excursion 138 "\
  79. Byte code opcode to make a binding to record the buffer, point and mark.")
  80.  
  81. (defconst byte-save-window-excursion 139 "\
  82. Byte code opcode to make a binding to record entire window configuration.")
  83.  
  84. (defconst byte-save-restriction 140 "\
  85. Byte code opcode to make a binding to record the current buffer clipping restrictions.")
  86.  
  87. (defconst byte-catch 141 "\
  88. Byte code opcode for catch.  Takes, on stack, the tag and an expression for the body.")
  89.  
  90. (defconst byte-unwind-protect 142 "\
  91. Byte code opcode for unwind-protect.  Takes, on stack, an expression for the body
  92. and an expression for the unwind-action.")
  93.  
  94. (defconst byte-condition-case 143 "\
  95. Byte code opcode for condition-case.  Takes, on stack, the variable to bind,
  96. an expression for the body, and a list of clauses.")
  97.  
  98. (defconst byte-temp-output-buffer-setup 144 "\
  99. Byte code opcode for entry to with-output-to-temp-buffer.
  100. Takes, on stack, the buffer name.
  101. Binds standard-output and does some other things.
  102. Returns with temp buffer on the stack in place of buffer name.")
  103.  
  104. (defconst byte-temp-output-buffer-show 145 "\
  105. Byte code opcode for exit from with-output-to-temp-buffer.
  106. Expects the temp buffer on the stack underneath value to return.
  107. Pops them both, then pushes the value back on.
  108. Unbinds standard-output and makes the temp buffer visible.")
  109.  
  110. (defconst byte-nth 56)
  111.  
  112. (defconst byte-symbolp 57)
  113.  
  114. (defconst byte-consp 58)
  115.  
  116. (defconst byte-stringp 59)
  117.  
  118. (defconst byte-listp 60)
  119.  
  120. (defconst byte-eq 61)
  121.  
  122. (defconst byte-memq 62)
  123.  
  124. (defconst byte-not 63)
  125.  
  126. (defconst byte-car 64)
  127.  
  128. (defconst byte-cdr 65)
  129.  
  130. (defconst byte-cons 66)
  131.  
  132. (defconst byte-list1 67)
  133.  
  134. (defconst byte-list2 68)
  135.  
  136. (defconst byte-list3 69)
  137.  
  138. (defconst byte-list4 70)
  139.  
  140. (defconst byte-length 71)
  141.  
  142. (defconst byte-aref 72)
  143.  
  144. (defconst byte-aset 73)
  145.  
  146. (defconst byte-symbol-value 74)
  147.  
  148. (defconst byte-symbol-function 75)
  149.  
  150. (defconst byte-set 76)
  151.  
  152. (defconst byte-fset 77)
  153.  
  154. (defconst byte-get 78)
  155.  
  156. (defconst byte-substring 79)
  157.  
  158. (defconst byte-concat2 80)
  159.  
  160. (defconst byte-concat3 81)
  161.  
  162. (defconst byte-concat4 82)
  163.  
  164. (defconst byte-sub1 83)
  165.  
  166. (defconst byte-add1 84)
  167.  
  168. (defconst byte-eqlsign 85)
  169.  
  170. (defconst byte-gtr 86)
  171.  
  172. (defconst byte-lss 87)
  173.  
  174. (defconst byte-leq 88)
  175.  
  176. (defconst byte-geq 89)
  177.  
  178. (defconst byte-diff 90)
  179.  
  180. (defconst byte-negate 91)
  181.  
  182. (defconst byte-plus 92)
  183.  
  184. (defconst byte-max 93)
  185.  
  186. (defconst byte-min 94)
  187.  
  188. (defconst byte-point 96)
  189.  
  190. (defconst byte-goto-char 98)
  191.  
  192. (defconst byte-insert 99)
  193.  
  194. (defconst byte-point-max 100)
  195.  
  196. (defconst byte-point-min 101)
  197.  
  198. (defconst byte-char-after 102)
  199.  
  200. (defconst byte-following-char 103)
  201.  
  202. (defconst byte-preceding-char 104)
  203.  
  204. (defconst byte-current-column 105)
  205.  
  206. (defconst byte-indent-to 106)
  207.  
  208. (defconst byte-eolp 108)
  209.  
  210. (defconst byte-eobp 109)
  211.  
  212. (defconst byte-bolp 110)
  213.  
  214. (defconst byte-bobp 111)
  215.  
  216. (defconst byte-current-buffer 112)
  217.  
  218. (defconst byte-set-buffer 113)
  219.  
  220. (defconst byte-read-char 114)
  221.  
  222. (defconst byte-interactive-p 116)
  223.  
  224. (defun byte-recompile-directory (directory &optional arg) "\
  225. Recompile every .el file in DIRECTORY that needs recompilation.
  226. This is if a .elc file exists but is older than the .el file.
  227. If the .elc file does not exist, offer to compile the .el file
  228. only if a prefix argument has been specified." (interactive "DByte recompile directory: 
  229. P") (byte-code "ˆǠˆÈ!‰ˆÉÂÊ#Ë    …cÌ    @!?…OÈ    @\"‰…OÍ !ÎP‰…OÏ
  230. !ƒDÐ
  231. \"‚O…OÑÒ ÓQ!…ZÔ !ˆ T‰ˆ    A‰ˆ‚ˆÕÖ ×Uƒq؂rÙ#,‡" [directory files nil count source dest arg save-some-buffers expand-file-name directory-files "\\.el\\'" 0 auto-save-file-name-p file-name-sans-versions "c" file-exists-p file-newer-than-file-p y-or-n-p "Compile " "? " byte-compile-file message "Done (Total of %d file%s compiled)" 1 "" "s"] 15))
  232.  
  233. (defun byte-compile-file (filename) "\
  234. Compile a file of Lisp code named FILENAME into a file of byte code.
  235. The output file's name is made by appending \"c\" to the end of FILENAME." (interactive "fByte compile file: ") (byte-code "ĈË!‰ˆÌÍ\"ˆÎÏ!ÎÐ!ÄÄÄŠ    qˆÑ ˆÒ!ˆÓbˆ
  236. qˆÄÔ )ˆÑ ˆŠ    qˆÕÖ!ˆ×Ø!…LÙÓ!ˆ‚;ˆm?)…eÚ    !‰ˆÛÜ!
  237. \"ˆ‚7ˆ
  238. qˆÓbˆÝÞÄÈ#…’×ß!…Žàá!ˆÕâ!ˆ×ã!…ŽäÓ!ˆåcˆ‚lˆÓbˆÝÞÄÈ#…Ð׿!…Ì`S    Äç菅ËÕâ!ˆ    Šé ˆ`)=…Ë×ã!…ËäÓ!ˆåc)ˆ‚–ˆÈ
  239. êÓdë!ìP#)ˆíp!ˆí    !)-ˆÈ‡" [filename inbuffer outbuffer byte-compile-macro-environment nil case-fold-search sexp emacs-lisp-mode-hook t this-line vms-stmlf-recfm expand-file-name message "Compiling %s..." get-buffer-create " *Compiler Input*" " *Compiler Output*" erase-buffer insert-file-contents 1 emacs-lisp-mode skip-chars-forward "     
  240. " looking-at ";" forward-line read print byte-compile-file-form search-forward "
  241. (" "defun \\|autoload " forward-sexp 3 " " "\"" forward-char "\\
  242. " "defvar \\|defconst " (byte-code "ÁÂ!ˆÀ‡" [t forward-sexp 3] 2) ((error (byte-code "À‡" [nil] 1))) beginning-of-line write-region file-name-sans-versions "c" kill-buffer] 32))
  243.  
  244. (defun byte-compile-file-form (form) (byte-code "<?ƒ
  245. ‚”@È>ƒ„A@É     \"@Ê=ƒ_ËÌ Í8#ˆ
  246. ƒ4Î
  247. Å\"‚JÏ    !…@Р   K!Ñ=…J    ÅB B‰ˆÊÒA!B?…[ËÓ \"ˆ‚€
  248. ƒnÎ
  249. ÔAAB\"‚y    ÔAABB B‰ˆÕÒA!B*‚”@Ö=ƒ“×!ˆ‚”‡" [form name tem byte-compile-macro-environment filename nil noninteractive t (defun defmacro) assq defun message "Compiling %s (%s)..." 1 setcdr fboundp car-safe macro byte-compile-lambda "Compiling %s..." lambda defmacro require eval] 11))
  250.  
  251. (defun byte-compile (funname) "\
  252. Byte-compile the definition of function FUNNAME (a symbol)." (byte-code "Á!… ÂK!Ã=…ÄK!M‡" [funname fboundp car-safe lambda byte-compile-lambda] 5))
  253.  
  254. (defun byte-compile-lambda (fun) (byte-code "    AÄÅA\"ÆAA…A@;…A‰ˆÇÈAB!C‰ˆ
  255. …H
  256. A@;†6
  257. A@?ƒ=
  258. ‚DÅÇ
  259. A@!D B‰ˆ    A=?…XÉ    8 B‰ˆ    @    A@ BB+‡" [bodyptr fun int newbody assq interactive nil byte-compile-top-level progn 2] 6))
  260.  
  261. (defun byte-compile-top-level (form) (byte-code "ÁÁÍÍÍÁÁÁÁÁÎ 
  262.     Ï !‰
  263. ˆ
  264. @‰ ˆÐ
  265. A!‰    ˆ    …U T‰ ˆ    @ BB‰ˆ    A‰    ˆ‚4ˆ ‰+ˆÑ !ˆÒÓÍ\"ˆÔ
  266. TÁ\"‰ˆ……@A@@IˆA‰ˆ‚oˆÕ Í\"‰ˆ…©@@@AIˆA‰ˆ‚ŽˆÖ
  267. F.‡" [byte-compile-constants nil byte-compile-constnum byte-compile-pc byte-compile-depth byte-compile-maxdepth byte-compile-output byte-compile-string byte-compile-vector vars temp i form 0 -1 byte-compile-find-vars nreverse byte-compile-form byte-compile-out byte-return make-vector make-string byte-code] 10))
  268.  
  269. (defun byte-compile-find-vars (form) (byte-code "ÁÃ
  270. !B)‡" [all-vars nil form byte-compile-find-vars-1] 3))
  271.  
  272. (defun byte-compile-find-vars-1 (form) (byte-code "9ƒ    >?…    B‰ˆ‚ :?† @È=ƒ'‚ @É>ƒÊA@!AA
  273.  …‚ @9ƒU @    >?…R @    B‰‚y @:…y @@    >?…k @@    B‰ˆË @@Ì @A@!D\"ˆ A‰ˆ‚:ˆ@
  274. ÍÌ \"BB+‚ @Î=†›@Ï=ƒ¢‚ @Ð=ƒ¸ÐÌÑ8!ÒÓ\"BB‚ @Ô=ƒãÊA!
  275.  …ÛË ÍÌ @\"\"ˆ A‰ˆ‚ƈÔ
  276. B*‚ Õ\"‰=?ƒöÌ!‚ @9ƒ@ÍÌA\"B‚ ÍÌ\"‡" [form all-vars binds body tail clauses byte-compile-macro-environment t quote (let let*) copy-sequence setcar byte-compile-find-vars-1 mapcar function condition-case catch 1 nthcdr 2 cond macroexpand] 15))
  277.  
  278. (defun byte-compile-form (form) (byte-code "É    \"‰ˆÊ=ƒË!‚˜Å=ƒË!‚˜9ƒ+ÌÍ\"‚˜:?ƒ7Ë!‚˜@9?ƒÎ@!Ï=ƒ{Ð@8AÊ
  279. …j
  280. @ @D B‰ˆ
  281. A A‰ˆ‚QˆÑÒÓ !@AABB!+‚~Ô!‚˜@ÕNƒ”Ö\"‚—Ô!)ˆT‰]‰‡" [form byte-compile-macro-environment vars vals result t handler byte-compile-maxdepth byte-compile-depth macroexpand nil byte-compile-constant byte-compile-variable-ref byte-varref car-safe lambda 1 byte-compile-form let nreverse byte-compile-normal-call byte-compile funcall] 14))
  282.  
  283. (defun byte-compile-normal-call (form) (byte-code "Ã@!ˆA    …Ä    @!ˆ    A‰ˆ‚)ˆÅÆAG\"ˆ
  284. AGZ‰‡" [form copy byte-compile-depth byte-compile-push-constant byte-compile-form byte-compile-out byte-call] 5))
  285.  
  286. (defun byte-compile-variable-ref (base-op var) (byte-code "Ä    
  287. \"ƒÅ A\"‚ÆÇÈÉ    !\"!)‡" [data var byte-compile-constants base-op assq byte-compile-out error format "Variable %s seen on pass 2 of byte compiler but not pass 1" prin1-to-string] 7))
  288.  
  289. (defun byte-compile-constant (const) (byte-code "    ;ƒ Ä    
  290. \"‚Å    
  291. \"ƒÆA!‚*     T‰B
  292. B‰ˆÆ !)‡" [data const byte-compile-constants byte-compile-constnum assoc assq byte-compile-out-const] 6))
  293.  
  294. (defun byte-compile-push-constant (const) (byte-code "Ã!ˆ    
  295. T‰]‰‡" [const byte-compile-maxdepth byte-compile-depth byte-compile-constant] 4))
  296.  
  297. (put (quote point) (quote byte-compile) (quote byte-compile-no-args))
  298.  
  299. (put (quote point) (quote byte-opcode) (quote byte-point))
  300.  
  301. (put (quote dot) (quote byte-compile) (quote byte-compile-no-args))
  302.  
  303. (put (quote dot) (quote byte-opcode) (quote byte-point))
  304.  
  305. (put (quote point-max) (quote byte-compile) (quote byte-compile-no-args))
  306.  
  307. (put (quote point-max) (quote byte-opcode) (quote byte-point-max))
  308.  
  309. (put (quote point-min) (quote byte-compile) (quote byte-compile-no-args))
  310.  
  311. (put (quote point-min) (quote byte-opcode) (quote byte-point-min))
  312.  
  313. (put (quote dot-max) (quote byte-compile) (quote byte-compile-no-args))
  314.  
  315. (put (quote dot-max) (quote byte-opcode) (quote byte-point-max))
  316.  
  317. (put (quote dot-min) (quote byte-compile) (quote byte-compile-no-args))
  318.  
  319. (put (quote dot-min) (quote byte-opcode) (quote byte-point-min))
  320.  
  321. (put (quote following-char) (quote byte-compile) (quote byte-compile-no-args))
  322.  
  323. (put (quote following-char) (quote byte-opcode) (quote byte-following-char))
  324.  
  325. (put (quote preceding-char) (quote byte-compile) (quote byte-compile-no-args))
  326.  
  327. (put (quote preceding-char) (quote byte-opcode) (quote byte-preceding-char))
  328.  
  329. (put (quote current-column) (quote byte-compile) (quote byte-compile-no-args))
  330.  
  331. (put (quote current-column) (quote byte-opcode) (quote byte-current-column))
  332.  
  333. (put (quote eolp) (quote byte-compile) (quote byte-compile-no-args))
  334.  
  335. (put (quote eolp) (quote byte-opcode) (quote byte-eolp))
  336.  
  337. (put (quote eobp) (quote byte-compile) (quote byte-compile-no-args))
  338.  
  339. (put (quote eobp) (quote byte-opcode) (quote byte-eobp))
  340.  
  341. (put (quote bolp) (quote byte-compile) (quote byte-compile-no-args))
  342.  
  343. (put (quote bolp) (quote byte-opcode) (quote byte-bolp))
  344.  
  345. (put (quote bobp) (quote byte-compile) (quote byte-compile-no-args))
  346.  
  347. (put (quote bobp) (quote byte-opcode) (quote byte-bobp))
  348.  
  349. (put (quote current-buffer) (quote byte-compile) (quote byte-compile-no-args))
  350.  
  351. (put (quote current-buffer) (quote byte-opcode) (quote byte-current-buffer))
  352.  
  353. (put (quote read-char) (quote byte-compile) (quote byte-compile-no-args))
  354.  
  355. (put (quote read-char) (quote byte-opcode) (quote byte-read-char))
  356.  
  357. (put (quote symbolp) (quote byte-compile) (quote byte-compile-one-arg))
  358.  
  359. (put (quote symbolp) (quote byte-opcode) (quote byte-symbolp))
  360.  
  361. (put (quote consp) (quote byte-compile) (quote byte-compile-one-arg))
  362.  
  363. (put (quote consp) (quote byte-opcode) (quote byte-consp))
  364.  
  365. (put (quote stringp) (quote byte-compile) (quote byte-compile-one-arg))
  366.  
  367. (put (quote stringp) (quote byte-opcode) (quote byte-stringp))
  368.  
  369. (put (quote listp) (quote byte-compile) (quote byte-compile-one-arg))
  370.  
  371. (put (quote listp) (quote byte-opcode) (quote byte-listp))
  372.  
  373. (put (quote not) (quote byte-compile) (quote byte-compile-one-arg))
  374.  
  375. (put (quote not) (quote byte-opcode) (quote byte-not))
  376.  
  377. (put (quote null) (quote byte-compile) (quote byte-compile-one-arg))
  378.  
  379. (put (quote null) (quote byte-opcode) (quote byte-not))
  380.  
  381. (put (quote car) (quote byte-compile) (quote byte-compile-one-arg))
  382.  
  383. (put (quote car) (quote byte-opcode) (quote byte-car))
  384.  
  385. (put (quote cdr) (quote byte-compile) (quote byte-compile-one-arg))
  386.  
  387. (put (quote cdr) (quote byte-opcode) (quote byte-cdr))
  388.  
  389. (put (quote length) (quote byte-compile) (quote byte-compile-one-arg))
  390.  
  391. (put (quote length) (quote byte-opcode) (quote byte-length))
  392.  
  393. (put (quote symbol-value) (quote byte-compile) (quote byte-compile-one-arg))
  394.  
  395. (put (quote symbol-value) (quote byte-opcode) (quote byte-symbol-value))
  396.  
  397. (put (quote symbol-function) (quote byte-compile) (quote byte-compile-one-arg))
  398.  
  399. (put (quote symbol-function) (quote byte-opcode) (quote byte-symbol-function))
  400.  
  401. (put (quote 1+) (quote byte-compile) (quote byte-compile-one-arg))
  402.  
  403. (put (quote 1+) (quote byte-opcode) (quote byte-add1))
  404.  
  405. (put (quote 1-) (quote byte-compile) (quote byte-compile-one-arg))
  406.  
  407. (put (quote 1-) (quote byte-opcode) (quote byte-sub1))
  408.  
  409. (put (quote goto-char) (quote byte-compile) (quote byte-compile-one-arg))
  410.  
  411. (put (quote goto-char) (quote byte-opcode) (quote byte-goto-char))
  412.  
  413. (put (quote char-after) (quote byte-compile) (quote byte-compile-one-arg))
  414.  
  415. (put (quote char-after) (quote byte-opcode) (quote byte-char-after))
  416.  
  417. (put (quote set-buffer) (quote byte-compile) (quote byte-compile-one-arg))
  418.  
  419. (put (quote set-buffer) (quote byte-opcode) (quote byte-set-buffer))
  420.  
  421. (put (quote eq) (quote byte-compile) (quote byte-compile-two-args))
  422.  
  423. (put (quote eq) (quote byte-opcode) (quote byte-eq))
  424.  
  425. (put (quote eql) (quote byte-compile) (quote byte-compile-two-args))
  426.  
  427. (put (quote eql) (quote byte-opcode) (quote byte-eq))
  428.  
  429. (put (quote memq) (quote byte-compile) (quote byte-compile-two-args))
  430.  
  431. (put (quote memq) (quote byte-opcode) (quote byte-memq))
  432.  
  433. (put (quote cons) (quote byte-compile) (quote byte-compile-two-args))
  434.  
  435. (put (quote cons) (quote byte-opcode) (quote byte-cons))
  436.  
  437. (put (quote aref) (quote byte-compile) (quote byte-compile-two-args))
  438.  
  439. (put (quote aref) (quote byte-opcode) (quote byte-aref))
  440.  
  441. (put (quote set) (quote byte-compile) (quote byte-compile-two-args))
  442.  
  443. (put (quote set) (quote byte-opcode) (quote byte-set))
  444.  
  445. (put (quote fset) (quote byte-compile) (quote byte-compile-two-args))
  446.  
  447. (put (quote fset) (quote byte-opcode) (quote byte-fset))
  448.  
  449. (put (quote =) (quote byte-compile) (quote byte-compile-two-args))
  450.  
  451. (put (quote =) (quote byte-opcode) (quote byte-eqlsign))
  452.  
  453. (put (quote <) (quote byte-compile) (quote byte-compile-two-args))
  454.  
  455. (put (quote <) (quote byte-opcode) (quote byte-lss))
  456.  
  457. (put (quote >) (quote byte-compile) (quote byte-compile-two-args))
  458.  
  459. (put (quote >) (quote byte-opcode) (quote byte-gtr))
  460.  
  461. (put (quote <=) (quote byte-compile) (quote byte-compile-two-args))
  462.  
  463. (put (quote <=) (quote byte-opcode) (quote byte-leq))
  464.  
  465. (put (quote >=) (quote byte-compile) (quote byte-compile-two-args))
  466.  
  467. (put (quote >=) (quote byte-opcode) (quote byte-geq))
  468.  
  469. (put (quote get) (quote byte-compile) (quote byte-compile-two-args))
  470.  
  471. (put (quote get) (quote byte-opcode) (quote byte-get))
  472.  
  473. (put (quote nth) (quote byte-compile) (quote byte-compile-two-args))
  474.  
  475. (put (quote nth) (quote byte-opcode) (quote byte-nth))
  476.  
  477. (put (quote aset) (quote byte-compile) (quote byte-compile-three-args))
  478.  
  479. (put (quote aset) (quote byte-opcode) (quote byte-aset))
  480.  
  481. (defun byte-compile-no-args (form) (byte-code "ÁGÂ\"ƒÃ!‚Ä@ÅNJÆ\"‡" [form /= 1 byte-compile-normal-call byte-compile-out byte-opcode 0] 5))
  482.  
  483. (defun byte-compile-one-arg (form) (byte-code "ÂGÃ\"ƒÄ!‚!ÅA@!ˆ    S‰ˆÆ@ÇNJÈ\"‡" [form byte-compile-depth /= 2 byte-compile-normal-call byte-compile-form byte-compile-out byte-opcode 0] 6))
  484.  
  485. (defun byte-compile-two-args (form) (byte-code "ÂGÃ\"ƒÄ!‚(ÅA@!ˆÅÆ8!ˆ    ÆZ‰ˆÇ@ÈNJÉ\"‡" [form byte-compile-depth /= 3 byte-compile-normal-call byte-compile-form 2 byte-compile-out byte-opcode 0] 7))
  486.  
  487. (defun byte-compile-three-args (form) (byte-code "ÂGÃ\"ƒÄ!‚.ÅA@!ˆÅÆ8!ˆÅÇ8!ˆ    ÇZ‰ˆÈ@ÉNJÊ\"‡" [form byte-compile-depth /= 4 byte-compile-normal-call byte-compile-form 2 3 byte-compile-out byte-opcode 0] 8))
  488.  
  489. (put (quote substring) (quote byte-compile) (quote byte-compile-substring))
  490.  
  491. (defun byte-compile-substring (form) (byte-code "GÃV† GÄWƒÅ!‚8ÆÇ8!ˆÆÄ8†\"È!ˆÆÉ8†,Ê!ˆ    ÉZ‰ˆË
  492. Ì\"‡" [form byte-compile-depth byte-substring 4 2 byte-compile-normal-call byte-compile-form 1 (quote nil) 3 (quote nil) byte-compile-out 0] 7))
  493.  
  494. (put (quote interactive-p) (quote byte-compile) (quote byte-compile-interactive-p))
  495.  
  496. (defun byte-compile-interactive-p (form) (byte-code "ÁÂ\"‡" [byte-interactive-p byte-compile-out 0] 3))
  497.  
  498. (put (quote list) (quote byte-compile) (quote byte-compile-list))
  499.  
  500. (defun byte-compile-list (form) (byte-code "    GÅUƒÆÂ!‚AÇWƒ>    A …)È @!ˆ A‰ˆ‚ˆ SZ‰ˆÉÊZË8JÌ\")‚AÍ    !)‡" [len form nil args byte-compile-depth 1 byte-compile-constant 6 byte-compile-form byte-compile-out 2 (byte-list1 byte-list2 byte-list3 byte-list4) 0 byte-compile-normal-call] 5))
  501.  
  502. (put (quote concat) (quote byte-compile) (quote byte-compile-concat))
  503.  
  504. (defun byte-compile-concat (form) (byte-code "    GÅUƒÆÇ!‚MÈUƒÉ    !‚MÊWƒJ    A
  505. …5Æ
  506. @!ˆ
  507. A‰ˆ‚$ˆ SZ‰ˆËÌZÍ8JÎ\")‚MÉ    !)‡" [len form args byte-compile-depth t 1 byte-compile-form "" 2 byte-compile-normal-call 6 byte-compile-out 3 (byte-concat2 byte-concat3 byte-concat4) 0] 6))
  508.  
  509. (put (quote -) (quote byte-compile) (quote byte-compile-minus))
  510.  
  511. (defun byte-compile-minus (form) (byte-code "    GÆUƒÇ    A@!ˆ
  512. ÈZ‰ˆÉ Ê\"‚>ËUƒ;Ç    A@!ˆÇÆ    8!ˆ
  513. ÆZ‰ˆÉ Ê\"‚>Ì    !)‡" [len form byte-compile-depth byte-negate byte-diff t 2 byte-compile-form 1 byte-compile-out 0 3 byte-compile-normal-call] 7))
  514.  
  515. (put (quote +) (quote byte-compile) (quote byte-compile-maybe-two-args))
  516.  
  517. (put (quote +) (quote byte-opcode) (quote byte-plus))
  518.  
  519. (put (quote max) (quote byte-compile) (quote byte-compile-maybe-two-args))
  520.  
  521. (put (quote max) (quote byte-opcode) (quote byte-max))
  522.  
  523. (put (quote min) (quote byte-compile) (quote byte-compile-maybe-two-args))
  524.  
  525. (put (quote min) (quote byte-opcode) (quote byte-min))
  526.  
  527. (defun byte-compile-maybe-two-args (form) (byte-code "    GÃUƒ&Ä    A@!ˆÄÅ    8!ˆ
  528. ÅZ‰ˆÆ    @ÇNJÈ\"‚)É    !)‡" [len form byte-compile-depth 3 byte-compile-form 2 byte-compile-out byte-opcode 0 byte-compile-normal-call] 5))
  529.  
  530. (put (quote function) (quote byte-compile) (quote byte-compile-function-form))
  531.  
  532. (defun byte-compile-function-form (form) (byte-code "A@9ƒÂÃÄÅ8DD!‚ÆÇA@!!‡" [form t byte-compile-form symbol-function quote 1 byte-compile-constant byte-compile-lambda] 5))
  533.  
  534. (put (quote indent-to) (quote byte-compile) (quote byte-compile-indent-to))
  535.  
  536. (defun byte-compile-indent-to (form) (byte-code "    GÄUƒÅ    A@!ˆ
  537. ÆZ‰ˆÇ È\"‚É    !)‡" [len form byte-compile-depth byte-indent-to 2 byte-compile-form 1 byte-compile-out 0 byte-compile-normal-call] 4))
  538.  
  539. (put (quote insert) (quote byte-compile) (quote byte-compile-insert))
  540.  
  541. (defun byte-compile-insert (form) (byte-code "    GÅWƒ,    A
  542. …(Æ
  543. @!ˆ ÇZ‰ˆÈ É\"ˆ
  544. A‰ˆ‚ )‚/Ê    !)‡" [len form args byte-compile-depth byte-insert 3 byte-compile-form 1 byte-compile-out 0 byte-compile-normal-call] 5))
  545.  
  546. (put (quote setq-default) (quote byte-compile) (quote byte-compile-setq-default))
  547.  
  548. (defun byte-compile-setq-default (form) (byte-code "ÁÂÃÄ8DÅÆ\"BB!‡" [form byte-compile-form set-default quote 1 nthcdr 2] 6))
  549.  
  550. (put (quote quote) (quote byte-compile) (quote byte-compile-quote))
  551.  
  552. (defun byte-compile-quote (form) (byte-code "ÁA@!‡" [form byte-compile-constant] 2))
  553.  
  554. (put (quote setq) (quote byte-compile) (quote byte-compile-setq))
  555.  
  556. (defun byte-compile-setq (form) (byte-code "    Aƒ;…8ÅA@!ˆAA?…#ÆÇÈ\"ˆ
  557. T]‰ˆ S‰ˆÉÊ@\"ˆAA‰ˆ‚‚>ËÄ!)‡" [args form byte-compile-maxdepth byte-compile-depth nil byte-compile-form byte-compile-out byte-dup 0 byte-compile-variable-ref byte-varset byte-compile-constant] 6))
  558.  
  559. (put (quote let) (quote byte-compile) (quote byte-compile-let))
  560.  
  561. (defun byte-compile-let (form) (byte-code "    A@…#@9ƒÄÂ!‚Å@A@!ˆA‰ˆ‚)ˆÆ    A@! GZ‰ˆ…S@9ƒDÇÈ@\"‚JÇÈ@@\"ˆA‰ˆ‚2)ˆÉ    AA!ˆÊË    A@G\"‡" [varlist form nil byte-compile-depth byte-compile-push-constant byte-compile-form reverse byte-compile-variable-ref byte-varbind byte-compile-body byte-compile-out byte-unbind] 9))
  562.  
  563. (put (quote let*) (quote byte-compile) (quote byte-compile-let*))
  564.  
  565. (defun byte-compile-let* (form) (byte-code "    A@…=@9ƒÄÂ!‚Å@A@!ˆ S‰ˆ@9ƒ.ÆÇ@\"‚4ÆÇ@@\"ˆA‰ˆ‚)ˆÈ    AA!ˆÉÊ    A@G\"‡" [varlist form nil byte-compile-depth byte-compile-push-constant byte-compile-form byte-compile-variable-ref byte-varbind byte-compile-body byte-compile-out byte-unbind] 8))
  566.  
  567. (put (quote save-excursion) (quote byte-compile) (quote byte-compile-save-excursion))
  568.  
  569. (defun byte-compile-save-excursion (form) (byte-code "ÁÂÃ\"ˆÄA!ˆÁÅÆ\"‡" [form byte-compile-out byte-save-excursion 0 byte-compile-body byte-unbind 1] 5))
  570.  
  571. (put (quote save-restriction) (quote byte-compile) (quote byte-compile-save-restriction))
  572.  
  573. (defun byte-compile-save-restriction (form) (byte-code "ÁÂÃ\"ˆÄA!ˆÁÅÆ\"‡" [form byte-compile-out byte-save-restriction 0 byte-compile-body byte-unbind 1] 5))
  574.  
  575. (put (quote with-output-to-temp-buffer) (quote byte-compile) (quote byte-compile-with-output-to-temp-buffer))
  576.  
  577. (defun byte-compile-with-output-to-temp-buffer (form) (byte-code "ÂA@!ˆÃÄÅ\"ˆÆAA!ˆÃÇÅ\"ˆ    S‰‡" [form byte-compile-depth byte-compile-form byte-compile-out byte-temp-output-buffer-setup 0 byte-compile-body byte-temp-output-buffer-show] 6))
  578.  
  579. (put (quote progn) (quote byte-compile) (quote byte-compile-progn))
  580.  
  581. (defun byte-compile-progn (form) (byte-code "ÁA!‡" [form byte-compile-body] 2))
  582.  
  583. (put (quote interactive) (quote byte-compile) (quote byte-compile-noop))
  584.  
  585. (defun byte-compile-noop (form) (byte-code "ÁÀ!‡" [nil byte-compile-constant] 2))
  586.  
  587. (defun byte-compile-body (body) (byte-code "?ƒ ÃÁ!‚+…+Ä@!ˆAƒÅ ‚\"
  588. S‰ˆA‰ˆ‚ ‡" [body nil byte-compile-depth byte-compile-constant byte-compile-form byte-compile-discard] 6))
  589.  
  590. (put (quote prog1) (quote byte-compile) (quote byte-compile-prog1))
  591.  
  592. (defun byte-compile-prog1 (form) (byte-code "ÁA@!ˆAA…ÂAA!ˆÃ ‡" [form byte-compile-form byte-compile-body byte-compile-discard] 4))
  593.  
  594. (put (quote prog2) (quote byte-compile) (quote byte-compile-prog2))
  595.  
  596. (defun byte-compile-prog2 (form) (byte-code "ÁA@!ˆÂ ˆÁÃ8!ˆAAA…ÄAAA!ˆÂ ‡" [form byte-compile-form byte-compile-discard 2 byte-compile-body] 6))
  597.  
  598. (defun byte-compile-discard nil (byte-code "ÁÂÃ\"ˆS‰‡" [byte-compile-depth byte-compile-out byte-discard 0] 3))
  599.  
  600. (put (quote if) (quote byte-compile) (quote byte-compile-if))
  601.  
  602. (defun byte-compile-if (form) (byte-code "ÄÅ\"?ƒ-Æ ÇA@!ˆÈÉ    \"ˆ
  603. S‰ˆÇÊ8!ˆ
  604. S‰ˆË    !)‚bÆ Æ ÇA@!ˆÈÌ \"ˆ
  605. S‰ˆÇÊ8!ˆ
  606. S‰ˆÈÍ    \"ˆË !ˆÎAAA!ˆË    !*‡" [form donetag byte-compile-depth elsetag nthcdr 3 byte-compile-make-tag byte-compile-form byte-compile-goto byte-goto-if-nil-else-pop 2 byte-compile-out-tag byte-goto-if-nil byte-goto byte-compile-body] 16))
  607.  
  608. (put (quote cond) (quote byte-compile) (quote byte-compile-cond))
  609.  
  610. (defun byte-compile-cond (form) (byte-code "Aƒ ÂA!‚ÃÁ!‡" [form nil byte-compile-cond-1 byte-compile-constant] 3))
  611.  
  612. (defun byte-compile-cond-1 (clauses) (byte-code "@@Á=†Å@@!Æ=…ÅÇ@@!!ƒ2@Aƒ*È@A!‚/É@@!‚ŸA?ƒ^Ê É@@!ˆ@A…ZËÌ
  613. \"ˆ S‰ˆÈ@A!ˆÍ
  614. !)‚ŸÊ Ê É@@!ˆ@A?ƒ}ËÎ
  615. \"ˆ S‰‚•ËÏ \"ˆ S‰ˆÈ@A!ˆËÐ
  616. \"ˆÍ !ˆÑA!ˆÍ
  617. !*‡" [clauses t donetag byte-compile-depth elsetag car-safe quote cdr-safe byte-compile-body byte-compile-form byte-compile-make-tag byte-compile-goto byte-goto-if-nil-else-pop byte-compile-out-tag byte-goto-if-not-nil-else-pop byte-goto-if-nil byte-goto byte-compile-cond-1] 21))
  618.  
  619. (put (quote and) (quote byte-compile) (quote byte-compile-and))
  620.  
  621. (defun byte-compile-and (form) (byte-code "Å 
  622. A    ?ƒÆÃ!ˆ S‰‚=    …=Æ    @!ˆ S‰ˆ    A?ƒ0Ç!‚4ÈÉ\"ˆ    A‰ˆ‚*‡" [failtag args form t byte-compile-depth byte-compile-make-tag byte-compile-form byte-compile-out-tag byte-compile-goto byte-goto-if-nil-else-pop] 8))
  623.  
  624. (put (quote or) (quote byte-compile) (quote byte-compile-or))
  625.  
  626. (defun byte-compile-or (form) (byte-code "Å 
  627. A    ?ƒÆÃ!‚8    …8Ç    @!ˆ S‰ˆ    A?ƒ+È!‚/ÉÊ\"ˆ    A‰ˆ‚*‡" [wintag args form nil byte-compile-depth byte-compile-make-tag byte-compile-constant byte-compile-form byte-compile-out-tag byte-compile-goto byte-goto-if-not-nil-else-pop] 8))
  628.  
  629. (put (quote while) (quote byte-compile) (quote byte-compile-while))
  630.  
  631. (defun byte-compile-while (form) (byte-code "Ä Ä  AAÅ    !ˆÆ A@!ˆÇÈ\"ˆÉ AA!ˆÊ ˆÇË    \"ˆÅ!+‡" [endtag looptag args form byte-compile-make-tag byte-compile-out-tag byte-compile-form byte-compile-goto byte-goto-if-nil-else-pop byte-compile-body byte-compile-discard byte-goto] 10))
  632.  
  633. (put (quote catch) (quote byte-compile) (quote byte-compile-catch))
  634.  
  635. (defun byte-compile-catch (form) (byte-code "ÂA@!ˆÃÄÅAAB!!ˆ    ÆZ‰ˆÇÈÉ\"‡" [form byte-compile-depth byte-compile-form byte-compile-push-constant byte-compile-top-level progn 2 byte-compile-out byte-catch 0] 6))
  636.  
  637. (put (quote save-window-excursion) (quote byte-compile) (quote byte-compile-save-window-excursion))
  638.  
  639. (defun byte-compile-save-window-excursion (form) (byte-code "ÂÃÄAB!C!ˆ    S‰ˆÅÆÇ\"‡" [form byte-compile-depth byte-compile-push-constant byte-compile-top-level progn byte-compile-out byte-save-window-excursion 0] 5))
  640.  
  641. (put (quote unwind-protect) (quote byte-compile) (quote byte-compile-unwind-protect))
  642.  
  643. (defun byte-compile-unwind-protect (form) (byte-code "ÂÃÄAAB!C!ˆ    S‰ˆÅÆÇ\"ˆÈA@!ˆ    S‰ˆÅÉÊ\"‡" [form byte-compile-depth byte-compile-push-constant byte-compile-top-level progn byte-compile-out byte-unwind-protect 0 byte-compile-form byte-unbind 1] 7))
  644.  
  645. (put (quote condition-case) (quote byte-compile) (quote byte-compile-condition-case))
  646.  
  647. (defun byte-compile-condition-case (form) (byte-code "ÅA@!ˆÅÆÇ8!!ˆAAAÈ    …3    @ @ÆÉ AB!D
  648. B‰)ˆ    A‰ˆ‚ˆÅÊ
  649. !!*ˆ ËZ‰ˆÌÍÎ\"‡" [form clauses compiled-clauses clause byte-compile-depth byte-compile-push-constant byte-compile-top-level 2 nil progn nreverse 3 byte-compile-out byte-condition-case 0] 9))
  650.  
  651. (defun byte-compile-make-tag nil (byte-code "ÀÀB‡" [nil] 2))
  652.  
  653. (defun byte-compile-out-tag (tag) (byte-code "    @à   
  654. \"ˆ…Ä@
  655. \"ˆA‰ˆ‚)‡" [uses tag byte-compile-pc setcar byte-compile-store-goto] 5))
  656.  
  657. (defun byte-compile-goto (opcode tag) (byte-code "ÃÄ\"ˆÅ    @!ƒÆ
  658.     @\"‚Ç    
  659.     @B\"ˆ
  660. È\\‰‡" [opcode tag byte-compile-pc byte-compile-out 0 integerp byte-compile-store-goto setcar 2] 7))
  661.  
  662. (defun byte-compile-store-goto (at-pc to-pc) (byte-code "    Ã
  663. Ä\"BB‰ˆ    TÅ
  664. Æ\"BB‰‡" [byte-compile-output at-pc to-pc logand 255 lsh -8] 5))
  665.  
  666. (defun byte-compile-out (opcode offset) (byte-code "Â!‰ˆ    ÃWƒÄ    \\!‚9    ÅWƒ&ÄÃ\\!ˆÄ    !‚9ÄÆ\\!ˆÄÇ    È\"!ˆÄÉ    Ê\"!‡" [opcode offset eval 6 byte-compile-out-1 256 7 logand 255 lsh -8] 11))
  667.  
  668. (defun byte-compile-out-const (offset) (byte-code "    WƒÄ
  669. \\!‚Ä !ˆÄÅÆ\"!ˆÄÇÈ\"!‡" [offset byte-constant-limit byte-constant byte-constant2 byte-compile-out-1 logand 255 lsh -8] 8))
  670.  
  671. (defun byte-compile-out-1 (code) (byte-code "    
  672. BB‰ˆ    T‰‡" [byte-compile-output byte-compile-pc code] 2))
  673.  
  674. (defun batch-byte-compile nil "\
  675. Runs byte-compile-file on the files remaining on the command line.
  676. Must be used only with -batch, and kills emacs on completion.
  677. Each file will be processed even if an error occurred previously.
  678. For example, invoke \"emacs -batch -f batch-byte-compile $emacs/ ~/*.el\"" (byte-code "?…ÁÈ!ˆÂ …†ÉÊ @!!ƒrË @! …nÌÍ @\"…XÎ @!?…XÊ @ @\"‰…XÏ
  679. !ÐP‰…XÑ!…XÒ
  680. \"…eÓ
  681. !?…eljˆ A‰ˆ‚\"+‚}Ó @!?…}ljˆ A‰ˆ‚ ˆÔÕ!ˆÖ    ƒ”ׂ•Ø!)‡" [noninteractive error nil command-line-args-left files source dest t "batch-byte-compile is to be used only with -batch" file-directory-p expand-file-name directory-files string-match ".el$" auto-save-file-name-p file-name-sans-versions "c" file-exists-p file-newer-than-file-p batch-byte-compile-file message "Done" kill-emacs 1 0] 15))
  682.  
  683. (defun batch-byte-compile-file (file) (byte-code "ÀÁ‡" [err (byte-code "Â!ˆÁ‡" [file t byte-compile-file] 2) ((error (byte-code "ÃAƒ
  684. Ă Å    @ÆNÇA!$ˆÂ‡" [err file nil message ">>Error occurred processing %s: %s (%s)" ">>Error occurred processing %s: %s" error-message prin1-to-string] 6)))] 3))
  685.